Date		:	13 mai 1991
		Protection	:	CLEF PHYSIQUE
		Programme	:       EXPERTECH V3.0
		Outils		:	CARTE PANO_AT
		Fichier		:	XI31.EXE
		Temps pass�	:	1 Heure
		Soci�t�		:	EXPERTECH
		Divers	        :	PERISCOPE charg� � 0A9B:0000
		Origine		:	L.F.
		Num�ro		:	074


	PERISCOPE en arr�t sur le port d'imprimante. ( carte PANO ) 379 R

	Au retour du sous-programme de test de la clef on tombe sur cette
	routine ( qui est cod�e ) dans laquelle il suffit de forcer le saut
	en 0786 pour que le soft fonctionne.
	Plusieurs solutions possibles:
	
	1- transformer le saut JNZ en JZ.
	2- mettre des NOP de 776 � 785.
	3- placer un JMP 786 en 774.

	205C:076F 83C402        ADD     SP,+02
	205C:0772 0BC0          OR      AX,AX

	205C:0774 7510          JNZ     0786	� transformer en JZ 0786.

	205C:0776 B86600        MOV     AX,0066
	205C:0779 50            PUSH    AX
	205C:077A 9A0901B44D    CALL    4DB4:0109
	205C:077F 83C402        ADD     SP,+02
	205C:0782 0E            PUSH    CS
	205C:0783 E80100        CALL    0787
	205C:0786 CB            RETF

	Je place un BI 21 avec un BM 205C:0774 205C:0774 W pour m'arr�ter
	d�s que l'on �crit dans la position 0774. 
	Chose curieuse, sans BI 21 le soft se d�roule en full speed. 
	Je m'arr�te � l'adresse DS:0004 qui est bien 205C:0774.
	Le principe du codage est un XOR de la position
	N-1 avec la position N par mot de 16 bits, voir ci-dessous:
	On note dans AX mon 7510 cherch�...

	AX=1075  BX=C00B  CX=5BDF  DX=20D3  SP=0080  BP=091C  SI=0006  DI=0080
	DS=20D3  ES=7CB2  SS=7FA1  CS=7CB2  IP=0042   NV UP EI PL NZ NA PO NC
	WR DS:0004 = D07E
	7CB2:0042 A30400        MOV     [0004],AX

	7CB2:0042 A30400        MOV     [0004],AX
	7CB2:0045 8B1E0600      MOV     BX,[0006]
	7CB2:0049 33D8          XOR     BX,AX
	7CB2:004B 891E0600      MOV     [0006],BX
	7CB2:004F A10800        MOV     AX,[0008]
	7CB2:0052 33C3          XOR     AX,BX
	7CB2:0054 A30800        MOV     [0008],AX
	7CB2:0057 8B1E0A00      MOV     BX,[000A]
	7CB2:005B 33D8          XOR     BX,AX
	7CB2:005D 891E0A00      MOV     [000A],BX
	7CB2:0061 A10C00        MOV     AX,[000C]

	Cette routine est en clair dans le fichier XI31.EXE ainsi que la
	chaine qui une fois XOR� donne mon 7510B86600....:

			CFC2 7ED0 CD76 B836 9A59
	
	Raisonnons: CFC2 XORer avec X donne 7510 ---> d'ou on d�duit que X
	est �gal � BAD2;

	1100 1111 1100 0010 ---> CFC2
	0111 0101 0001 0000 ---> 7510
	-------------------      XOR
	1011 1010 1101 0010 ---> BAD2

	Donc si au lieu de 7510 je veux 7410 il suffit de XORer A avec 4 et
	cel� donne E. ( d'ou on remplace l'octet CF par CE )
	Le probl�me, car il y en a un c'est que l'octet N+1 est fabriqu� �
	partir de l'octet N. Ce qui signifie que la suite du code est
	compl�tement fauss�e.
	Il faut donc rattrapper l'"erreur" en corrigeant une nouvelle fois
	en aval.

	CD76 XOR� avec 7510 donnait B866, comme on a maintenant 7410 il faut
	s'arranger pour que 7410 XOR� avec CD76 donne B866.
	4 XOR� avec X doit �tre �gal � 8 ; d'ou X �gal C. 

	Modifier donc l'octet CD en CC.

	Avec PCTOOLS chercher CFC27ED0CD et modifier CF par CE et CD par CC.

	CQFD